package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 查看用户信息扣费实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@TableName("yunke_check_user")
@Schema(description = "查看用户信息扣费记录")
public class YunkeCheckUser {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 查看者用户ID
     */
    @Schema(description = "查看者用户ID")
    private Long viewerId;

    /**
     * 被查看者用户ID
     */
    @Schema(description = "被查看者用户ID")
    private Long targetUserId;

    /**
     * 查看类型：1-查看联系方式 2-查看详细资料 3-查看私密信息
     */
    @Schema(description = "查看类型")
    private Integer checkType;

    /**
     * 查看内容描述
     */
    @Schema(description = "查看内容描述")
    private String checkContent;

    /**
     * 扣费金额
     */
    @Schema(description = "扣费金额")
    private BigDecimal amount;

    /**
     * 扣费前余额
     */
    @Schema(description = "扣费前余额")
    private BigDecimal beforeBalance;

    /**
     * 扣费后余额
     */
    @Schema(description = "扣费后余额")
    private BigDecimal afterBalance;

    /**
     * 支付状态：1-支付成功 2-余额不足 3-支付失败
     */
    @Schema(description = "支付状态")
    private Integer payStatus;

    /**
     * 查看状态：1-申请中 2-已同意 3-已拒绝 4-已过期
     */
    @Schema(description = "查看状态")
    private Integer status;

    /**
     * 申请理由
     */
    @Schema(description = "申请理由")
    private String applyReason;

    /**
     * 审核结果
     */
    @Schema(description = "审核结果")
    private String auditResult;

    /**
     * 审核时间
     */
    @Schema(description = "审核时间")
    private Long auditTime;

    /**
     * 有效期开始时间
     */
    @Schema(description = "有效期开始时间")
    private Long validStartTime;

    /**
     * 有效期结束时间
     */
    @Schema(description = "有效期结束时间")
    private Long validEndTime;

    /**
     * 查看次数限制
     */
    @Schema(description = "查看次数限制")
    private Integer viewLimit;

    /**
     * 已查看次数
     */
    @Schema(description = "已查看次数")
    private Integer viewedCount;

    /**
     * 最后查看时间
     */
    @Schema(description = "最后查看时间")
    private Long lastViewTime;

    /**
     * 订单号
     */
    @Schema(description = "订单号")
    private String orderNo;

    /**
     * 备注信息
     */
    @Schema(description = "备注信息")
    private String remark;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Long createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Long updateTime;
} 